Computerized cost estimate system and method

ABSTRACT

A method and system for computing a cost estimate for a a company that may be the client of a supplier providing information system equipment and consulting. An estimate is calculated according to a model with input characterizing circumstances of the client. The program collects client profile information and costs that the client knows. Other costs that the client does not know are read from a local database storing costs known by other clients with similar profiles. A remote database accessible by any client is updated by cost estimate information at each new cost estimate execution by a client.

FIELD OF THE INVENTION

[0001] The present invention generally relates to computerized costestimation of an activity in a business organization; more particularly,the invention relates to a cost estimation method and system usingparameter values that take into account the specific circumstances theorganization.

BACKGROUND OF THE INVENTION

[0002] A service provider or a consulting company may provide a clientor a customer with cost estimates used for planning the design orproduction budget of a business activity. Since important decisions mayhinge on analysis supported by such estimates, it is important to ensurethat the estimates are as accurate as possible.

[0003] The accuracy of a cost estimate depends on the model used torepresent the underlying situation. Even when the accuracy of the modelitself is not in question, however, the accuracy of the resultingestimate is still dependent upon the choice of input parameter values.For example, a cost estimate for an IT installation at a customer sitemay include the cost of equipment, the cost of real estate, the cost ofoperation and maintenance, and the cost of labor.

[0004] Often, some of the costs are known by the client from pastexperience, and some are not. The usual solution is then for thesupplier to send a consultant on-site to collect and compute the unknownor missing information. This solution is costly for the client and thesupplier.

[0005] Programs exist today for computing cost estimates for industryequipment and processes. In the IT industry, one such tool is the TotalCost Of Ownership Snapshot of COMPAQ, which can be downloaded at theInternet address ‘compaq.com/tco/snapshottool.html’. Another such toolis the NetApps TCO tool of Network Appliance at the Internet address‘netapp.com/tco/’. Yet another example is the EMC Effect ValueJustification Tool sold by EMC company at ‘emc.com/tco/’.

[0006] Such programs often have graphical user interfaces forinteractively capturing parameter values entered on input screens. Whena customer does not know a value needed as an input, the program uses adefault value, which may be an average value known to industry experts.

[0007] The results obtained when using default values are not nearly asaccurate as the results obtained when using input information gatheredby consultants, however, as an industry-average value may not apply tothe customer's particular situation. On the other hand, using defaultvalues is significantly less expensive than sending consultants.Consequently, there is a need to preserve the economic advantage offeredby cost estimation programs that use default values, but also to providethe accuracy that results when consultants gather missing inputinformation.

SUMMARY

[0008] An object of the present invention is to provide a method forautomatically computing a cost estimate for operating a giveninstallation corresponding to a given sector of an industry. Anotherobject of the invention is to provide accurate values as inputparameters to the method for automatically computing a cost estimate.

[0009] These and other objects are achieved by the use of a computerizedmethod for computing a cost estimate that implements a defined costestimate model corresponding to a user activity and employing inputinformation concerning the particular user. The method comprises thesteps of:

[0010] collecting user profile information about a user;

[0011] collecting a first set of costs known by the user;

[0012] reading, from a database, a second set of costs unknown by theuser but known by other users who have profiles similar to the user'sprofile; and,

[0013] calculating the cost estimate using the first set of costs, whichare known to the user, and the second set of costs, which are read fromthe database.

[0014] The method for reading the unknown costs from the databaseincludes the steps of:

[0015] for each cost unknown by the user, computing a mathematicaldistance between the user's profile information and profile informationconcerning other users read from the database; and,

[0016] selecting the cost associated with the other user having thesmallest computed mathematical distance.

[0017] Another embodiment includes the use of a relational databasewherein a query language provides a query for records that contain thecost unknown by the user but known by other users having profileinformation closest to the user's profile information.

[0018] The invention also includes a method that comprises the steps of:

[0019] sending a message comprising user profile information and thefirst set of costs to a remote server for use in computing other usercost estimates; and,

[0020] receiving from the remote server a new level of database contentupdated with information contained in the message, and updating thedatabase connected to the computer with the new database content level.

[0021] The invention also includes a computer program comprisinginstructions executing the steps of the method and a system adapted forcarrying out the steps of the method.

[0022] The invention also includes a method operating on a servercommunicating with a computer, comprising the steps of: receiving, fromthe computer, the message comprising the user profile information andthe first set of costs; updating a database connected to the remoteserver with the message, creating a new level of database content; anddownloading the new level of database to the computer.

[0023] A characteristic of the invention is to use a reference databasecomprising only validated values. A validation is first performed by theclient, who decides whether or not to send his cost estimate record tothe reference database. A second validation is performed at the serverlevel to check coherence between all the inputs provided by the clientwhen executing the cost estimate program. Finally, an input value in thereference database is marked as ‘validated’ only if it comes from realfigures that a client enters as known input. A value that comes from thedefault found in the database is marked as ‘estimated’. With the methodof the present invention, only validated values are used for costestimate computations, in order to provide optimum accuracy. Accuracy isimproved at each new update of the reference database, as data fromprevious cost estimate executions is stored in the database for futureuse as defaults. In other words, the database is enriched by each run ofa cost estimate computation.

[0024] As described later with reference to FIG. 3, another embodimentof the invention introduces granularity into the quality of the inputvalue stored in a record of the database by introducing an index ofconfidence attached to this ‘validated’ or ‘estimated’ value. When anassociated index value is high, a value may be selected by the costestimate program as a default value for a missing input even though thevalue is marked as ‘estimated.’ The index of confidence is set duringthe step of coherence checking performed automatically by the remoteserver in a preferred embodiment.

[0025] Another advantage of the invention is flexibility with regard tocost. It is possible to have very-low-cost embodiments of the presentinvention that provide significantly improved accuracy. It is possibleto access the most similar record in the database by computing amathematical distance between objects stored in a simple file. Anothersolution, more expensive, is to use a relational database, which iseasier to manage, where accessing specific records on the basis ofsimilar attribute values is done via a simple request in the databaselanguage.

BRIEF DESCRIPTION OF THE DRAWINGS

[0026]FIG. 1 illustrates an exemplary system suitable for operating apreferred embodiment of the inventive method;

[0027]FIG. 2 is the general flowchart of the cost estimate application;

[0028]FIG. 3 illustrates a record of the reference database;

[0029]FIG. 4 is a detailed flowchart of the general flow chart of FIG. 2for the update of the reference database;

[0030]FIG. 5 is a detailed flowchart of the general flowchart of FIG. 2for the collection of missing values among the input that the clientprovides;

[0031]FIG. 6 is an example of the result of a cost estimate;

[0032]FIG. 7 is a print view of the result of a cost estimate;

[0033]FIG. 8 is a second example of the result of a cost estimate;

[0034]FIG. 9 shows the variables allowing a mathematical distancecalculation to find a record in the data base; and

[0035]FIG. 10 illustrates the selection of records in the databaseaccording to the value of their mathematical distances to the vectorrepresenting the client profile.

DETAILED DESCRIPTION

[0036]FIG. 1 illustrates an exemplary system suitable for operating themethod according to a preferred embodiment of the invention. In thisexemplary embodiment, the system comprises a client workstation (100)executing a program using a Graphical User Interface developed on top ofan operating system such as Microsoft Windows. The program may also usethe services of other utilities such as a spreadsheet for calculation, aword processor for creating and editing documents, a presentationutility for creating screens, an electronic mail utility, and the like.

[0037] The cost estimate result is stored in the workstation as a filecomprising the inputs provided by the client and the resulting costcomputation. The cost estimate result can be locally processed, anddisplayed or printed on the local printer (120) of the clientworkstation. The workstation, when executing the cost estimate program,accesses a local database (110) which is, in a preferred embodiment, areplication of a remote database accessed on the workstation via theInternet (105).

[0038] The remote database, the reference database (130), is connectedto a server (140) owned by the supplier and accessed by the supplierfrom a remote location (150) for maintenance purposes. The server (140)makes the reference database (130) accessible to the supplier's clientcost estimate tool for replication to the local database (110). Theserver (140) executes a program to control and allow access to thereference database (130) to well-identified client cost estimateprograms. The reference database (130) is also updated by each new costestimate execution. This update is controlled by the supplier from hisworkstation (150) or, in another embodiment, automatically by a programexecuting on the server (140).

[0039] The supplier may also remotely execute a cost estimate for aclient, for example during the negotiation or execution of a contract.The supplier uses the same program execution environment (160, 170, 180)that the client uses to execute a cost estimate.

[0040]FIG. 2 is a general flowchart of the cost estimate computationaccording to a preferred embodiment of the invention. The first step(200) is to start replication of the reference database (130). When thecost estimate application is started, the client can optionally requesta replication of the reference database (130) in order to use the latestversion. The client is encouraged to update his database by receiving areminder when a new version of the database has been created.

[0041] If the client (100) activates this operation, and this is apreferable option, the application automatically sends an e-mail to theserver (140). The e-mail carries an attachment that includes the dataneeded such as the objective of the request, a return e-mail address forthe answer, the current level/release of the replicated database, and soforth. After receiving the e-mail, the server automatically executes therequest. If the request cannot be processed, for example if no newversion is available, a required fee has expired, and the like, theserver sends an e-mail to the client to explain the situation. Otherwise(i.e., the request can be processed), the server automatically sends ane-mail to the client with the new update file (not the full version) ofthe reference database in an attachment that may be compressed andsecured by a password.

[0042] After receiving and opening the e-mail, the client detaches theattached file, puts the detached file into a local disk folder, andrestarts the application. After the restart, the applicationautomatically senses that a new update of the database is available inthe local disk folder. The application then executes the file tocomplete the replication. Although this step is required, it may beexecuted independently of the cost estimate execution, since theoperation may take some time, depending on the size of the referencedatabase and the network availability. Another embodiment of theinvention with higher program-development cost executes automaticreplication of the database, without any action of the client, when thecustomer provides profile and cost input to the application.

[0043] Once the local database contains updated information, the costestimate computation program may be started (210) on the clientcomputer. The program displays screens for capturing input information.A first set of screens is for collecting client information (220) suchas the company name, the industry sector, and the total revenue, asdescribed later with reference to FIG. 3. These first inputs constitutethe client ‘profile’.

[0044] The second set of screens is for collecting cost information(230). The inputs collected for computing a cost estimate of an ITinstallation include hardware and software costs, maintenance costs, andother detailed inventory costs as described later with reference to FIG.3. Some input values may be unknown by the customer because he has noexperiential way to obtain the values. On the other hand, other inputsmay be known very well. As would be known to a person skilled in theart, the program for collecting input may include validation checkingfor each input field of the screen. This checking may be limited, forexample, to acceptance of numerical values only, or to a particularrange of numerical values.

[0045] After having entered the cost inputs, the client submits theseinputs for consolidation, preferably by activating a ‘button’ of theinteractive cost estimate program (240). The input value consolidationstep is performed automatically by the cost estimate program, andincludes reading all the inputs entered by the client. When a value hasnot been entered by the client (answer Yes to test 250), the programslooks for a default value in the local database (260). A ‘default value’is a value provided by another client who has the profile most similarto the current client's profile. A method for finding a missing value isdescribed in reference to FIG. 5. There are many embodiments for findingthe record corresponding to the client having the most similar profilein the database. A preferred embodiment is described later withreference to FIG. 9 and FIG. 10.

[0046] When all the inputs are collected (answer No to test 250), theclient submits the inputs to the cost estimate run. The cost estimate isautomatically computed (270). The cost estimate result is stored in thecomputer and is displayed, printed, or further processed by the client.The client may validate (answer Y to test 280) the cost estimate justexecuted if he is confident of the inputs and believes that the resultis realistic. The cost estimate inputs and the result are sent throughthe Internet to the server (140) handling the reference database (130)as a file attached to an e-mail automatically generated by the costestimate program (290).

[0047]FIG. 3 shows an example of information 300 provided by the costestimate application for storage in the reference database (130)according to a preferred embodiment of the invention. More particularly,the content is illustrated by the content of the right column 310,‘table’. The first part of the information comprises the set of inputscollected by the cost estimate application. Each input is qualified bythe ‘Variable label’ in the center column 320 of FIG. 3. This is thelabel describing the input. The left column 330 of FIG. 3 contains the‘Variable Name’ as used by the programs of the cost estimateapplication. A variable name is mentioned for each input. The variablevalues for the record are set in the left column 330 of the ‘Table’.

[0048] The first six variables of FIG. 3, which have variable names P1to P6, constitute the client profile. This information is collected bythe cost estimate program through the graphical user interface of theoperating system of the client workstation. The exemplary input shown inFIG. 3 is for evaluating the cost estimate of a computer storageinstallation. Two clients having similar profiles are likely to havesimilar costs. The cost inputs are the next 16 inputs of the column (I1to I16); they are also collected by the cost estimate program.

[0049] The right column 310 of FIG. 3 is itself a two column table, thefirst column being for the input values, and the second columncomprising two letters, either ‘V’ for ‘validated input’ or ‘E’ for‘estimated input’. When a customer has entered an input value (step 230of FIG. 2) and validated it (step 240 of FIG. 2), the cost estimateprogram will mark it as ‘validated’. If the input value comes from acost estimate program estimation (steps 260 and 264 of FIG. 2), the costestimate program will mark it as ‘estimated’. In a preferred embodimentof the invention, an input value in a cost estimate record of thedatabase is marked as ‘validated’ if it is known by the client whoentered it during a cost estimate execution. An input value in a costestimate record of the database is marked as ‘estimated’ if it has beenread from the database at execution of the cost estimate calculation.Then, when the cost estimate program chooses a value from the databasefor a missing input, it will preferably select only the input valuesmarked as ‘validated’.

[0050] In another embodiment, a ‘confidence index’ is applied to avalidated or an estimated input value. This confidence index is enteredduring the step of record validation (290) executed in the remote server(140). When the cost estimate program executing on the clientworkstation reads the database to find a missing input value, itpreferably chooses a record having an ‘estimated’ input value only ifthe confidence index is sufficiently high. This embodiment introduces agranularity in the quality of input values stored in the database.

[0051] Each set of inputs, as described in FIG. 3, once validated by theclient (step 280 of FIG. 2), can be sent simultaneously with the costestimate result to update the reference database (130). A client updateof the database will comprise a part of this set of input values.

[0052] As described later with reference to FIG. 5, when the costestimate program searches the database for a value to use for a missinginput, it finds the set of inputs corresponding to a client who has theclosest profile, and takes the associated input value only if it ismarked ‘validated’ in the database record. The input values marked‘estimated’ are preferably not taken, in order to ensure the quality ofthe data stored in the reference database (130) which is later used tocompute other cost estimates.

[0053] The columns of FIG. 3 also contain the cost estimate results forwhich the variable name (left column 330) are TCE1 to TCE5. Thesevariable values are computed at the end of the cost estimate execution.The client processes this data as illustrated in FIG. 6 through FIG. 8.

[0054] The last lines of the columns of FIG. 3 comprise data that arealso stored in the database record for administrative purposes. Thevariables A1, A2 and A3 are used by the program for updating thereference data. These variables are used also by conventionalmaintenance programs for maintaining the reference database (130)executed on the remote server (140). They include, in a preferredembodiment, the release of the cost estimate application identifying thesoftware level of the application executed by the client on hisworkstation. A second variable used for administration is the date ofthe last update of the reference database used by the client whenexecuting the cost estimate application. The third variable is the dateof cost estimate execution. These variable for administration areentered automatically by the cost estimate application in the recordwhich is prepared to be sent to the remote server and which is acandidate for being partly stored in the reference database (130)according to the process described below with reference to FIG. 4. Also,the supplier's administrative staff may use the information formaintenance purposes, to support statistical analysis, and to cancelrecords that are too old.

[0055]FIG. 4 shows a detailed flowchart of a method for updating thereference database (130) with a new execution of a client cost estimate.The client validates the record and decides to share it with thecommunity (290,400). The application automatically sends an e-mail tothe server with an attachment (410) containing the applicationinformation as described earlier with reference to FIG. 3 and the costestimate result figures. For security reasons, the attached file may becompressed and secured by a password. The server automatically detachesthe information and qualifies its reliability by following a qualityprocess (420). All values are tested to determine whether they conformto a detailed list of constraints. The constraints apply both to theinput values collected during the execution of the cost estimatecomputation and also to the cost estimate result (for example, range,format, comparison/coherence between values, minimum number of known or‘validated’ inputs, coherence with other records with the closestprofile, and others). At the end of the test, a reliability ratio (0% to100%) is established. If the reliability ratio does not reach apredetermined threshold (answer No to 430), an e-mail may be sent to theclient to explain the reasons of the refusal (440) and to provide adviceon how to improve the coherence of the provided inputs.

[0056] If the reliability ratio reaches the threshold (Answer yes to430), the record is automatically appended to the database as a newrecord. Then, the record is sanitized to delete all client references(450). Because the information may be confidential between the clientand the customer, the personal client information is not shared withother clients and thus is not stored in the reference database in a waythat makes it accessible to other clients. This measure is not intendedto prevent the supplier's administrative people from collectingstatistics or other parallel archiving of the client information. The‘sanitized’ record is appended to the database (460) and the version ofthe database is incremented (470). An e-mail is sent to notify theclient that the record has been validated and appended to the database(480). A reminder is sent to all installed applications to request anupdate of the database (490).

[0057]FIG. 5 shows further details of the general flowchart of FIG. 2for the collection of missing values among the inputs that the client isasked to provide. This flowchart describes the step of collectingmissing input (260 of FIG. 2) in the general method of computing thecost estimate. The process of FIG. 5 starts when at least one input ismissing (answer Yes to test 250 in FIG. 2) in the series of inputs theclient is asked to provide through the screens of the cost estimateapplication. When an input value is missing, the application gets thevalue from the local database (110). The first missing input is firstidentified (500). A first database record is read (520) and the profileof the client and the profile read in the record are compared. In apreferred embodiment, a mathematical distance is calculated (540)between the two profiles expressed as vectors as explained further belowwith reference to FIG. 9 and FIG. 10. The mathematical distance usesinput values weighted with factors depending on the input. If all thedatabase records have not been read in the database (answer No to test530), the next database record is read (520) and the distance iscomputed (540).

[0058] When all the database records have been read (answer No to test530), and all the distances have been calculated and compared, therecord in the database corresponding to the minimum distance is selected(550). The record corresponding to a client having the closest profileto the client currently executing the cost estimate application has thusbeen selected. In the selected record, the input value corresponding tothe missing input previously identified (500) is read. As described withreference to FIG. 3, this input may be marked as ‘estimated’ or‘validated’. If it is marked as ‘validated’ (answer Yes to test 570),this value is kept for the use of the current execution of the costestimate, and written in the current input values and marked as‘estimated’. This means that the value has not been computed andvalidated by the client, but instead is of outside origin. When themissing input value is not found in the selected database record,another candidate is found. This can be a validated value found in adatabase record for which the mathematical profile distance to thecurrent client record is close to the minimum, although not actually theminimum. A greatest acceptable profile distance between the minimum andthe candidate may be defined in the cost estimate program. In practice,a validated value is nearly always found in a record for which themathematical distance is very close. The more the database is enriched,the greater is the likelihood of finding a good candidate. The selectedcandidate is marked also as ‘estimated’ (590) in the input values of theclient executing the cost estimate application. As long as there arestill missing values to be found by the cost estimate application, thenext missing input is identified (500) and the process is repeated. Whenthere are no more missing values to be found (answer yes to test 510),the process ends (END) by returning to step 270 in the general flowchartof FIG. 2.

[0059]FIG. 6, FIG. 7, and FIG. 8 illustrate a cost estimate computationapplied to an IT installation for a client comprising storage equipmentand management. FIG. 6 is a print view (600) of the result of a costestimate computed according to a preferred embodiment. The current costestimate model calculates the storage cost estimate 610 (SEC) of aspecific storage solution. The table illustrates the results of severalcost estimate calculations (Environment A 620, B 630, and theircombination 640), displaying the results using different units (annualcosts, monthly cost per type of hardware, etc). This table is used tohelp the client to analyze the results in many ways to facilitatecomparisons and benchmarking.

[0060]FIG. 7 is a print view 700 of the result of a cost estimatecomputed according to a preferred embodiment. The current cost estimatemodel calculates the storage cost estimate (SCE) of a specific storagesolution. Each pie chart 710, 720 illustrates the result of the costestimate calculation, displaying the associated breakdown of the costcategories (cost and percentage for staffing, server, disk, etc.). Thesegraphics help the client determine the highest cost area and prioritizethe cost category for cost reduction purposes.

[0061]FIG. 8 is a print view 800 of the result of a cost estimatecomputed according to a preferred embodiment. The current cost estimatemodel calculates the storage cost estimate (SCE) of a specific storagesolution. The graph line chart 810 illustrates the evolution of the costestimate results according to different IT architectures (business asusual, consolidated storage, storage area network, etc.). The graphic810 is used to help the client identify an IT architecture which willprovide higher potential cost savings.

[0062]FIG. 9 illustrates a vector representation for the mathematicalcomputation of the distance between two records in the referencedatabase. This is an inexpensive embodiment of the method of theinvention because the database used can be a simple file under anyoperating system such as a folder under Microsoft Windows. Anothersolution, more expensive, includes using a relational database such asIBM DB2. Such databases have query languages to directly search andaccess records on the basis of field values. Boolean operators can beused. The maintenance of such databases is also facilitated. Thissolution is recommended when the number of clients reading and updatingthe database is large. This implies that the local database replicationsare also of the same kind, and that the operating system of the clientworkstations can support these databases. Another solution is to havemultiple simple (non-relational) databases, each dedicated to a set ofcustomers operating a specific cost estimate. In the IT environment, onedatabase could be dedicated to storage costs and another to the networkand communications.

[0063]FIG. 9 shows variables (900, 910, 920) for distance calculation.These variables may be part of the execution context of the program. Afirst p-dimensional vector (900) representing the client profile iscreated by the cost estimate application executed on the clientworkstation (100). The p dimensions are the p input values constitutingthe client profile. In the example of FIG. 3, the p vector coordinatesare the first six input values, which are numeric values, of thevariable list. An ‘input table’ is also created (910), which comprises ielements corresponding to the cost input values requested by the costestimate application. In the example of FIG. 3, there are 18 cost inputvariables used by the corresponding cost estimate application. Eachinput j (j is an integer from 1 to i) of the input table is associatedwith a ‘weight factor’, W_(j). The weight factor characterizes the useof the profile inputs for this specific cost input. Then the distancebetween two elements of the database may be computed as follows.

[0064] For the record having ID #65, for example, we compute, accordingto step 540 of FIG. 5, the distance between this record and the clientrecord for the cost input I₃, which is the missing input identified instep 500 of FIG. 5. The profile vector for the #65 record when appliedto cost input I₃ is:

Profile Vector (65,I ₃)=W _(3,1) .P _(65,1) + . . . +W _(3,p) .P _(65,p)

[0065] The profile vector for the other records (Id) is:

Profile Vector (Id,I ₃)=W _(3,1) .P _(id,1) + . . . +W _(3,p) .P _(id,p)

[0066] The distance is the absolute value of the vector difference:

Profile Vector (65,I ₃)−Profile Vector (Id,I ₃)=W _(3,1)(P _(65,1) −P_(id,1))+ . . . +W _(3,p)(P _(65,p) −P _(id,p))

[0067] The program selects the record with the minimum distance (550).This means that a search for the smallest value of the followingexpression is performed for all the record Ids in the data base:

|ProfileVector (65,I ₃)−Profile Vector (Id,I ₃)|

[0068] The record Id (Id_(mini)) for which the distance is minimumsatisfies the following inequalities:

|Profile Vector (65,I ₃)−Profile Vector (Id _(mini) ,I ₃)|≦{ProfileVector (65,I ₃)−Profile Vector (Id,I ₃)}

[0069] Once the record Id has been identified, the value of the missinginput can be read according to the next step (560) of the method.

[0070]FIG. 10 illustrates the selection of records in the databaseaccording to the value of their mathematical distances 1000 to thevector representing the client profile.

I claim:
 1. A computerized method for computing a cost estimate, saidmethod comprising the steps of: collecting user profile informationconcerning a user; collecting a first set of costs known by said user;reading, from database records of a local database that includeinformation concerning other users, a second set of costs unknown bysaid user and known by the other users, wherein the other users haveprofile information similar to the collected user profile information;and, calculating a cost estimate using the first set of costs and thesecond set of costs.
 2. The method of claim 1, wherein the step ofreading comprises the steps of: computing, for each cost unknown by saiduser, a mathematical distance between the collected user profileinformation and the profile information in each database record read;and, selecting a database record having minimum computed mathematicaldistance.
 3. The method of claim 2, wherein the mathematical distance isa vector distance with coordinates dependent upon the collected userprofile information, said vector distance being weighted according tocost.
 4. The method of claim 1, wherein the database is a relationaldatabase having a query language, and wherein the step of readingcomprises a step of performing a query to find records in the relationaldatabase that include a cost unknown by said user and known by at leastone of the other users, and include profile information closest to thecollected user profile information.
 5. A computer program productcomprising programming code instructions for executing the steps of themethod according to claim 1 when said program is executed on a computer.6. The method of claim 1, further comprising the steps of sending, fromthe computer to a remote server, a message comprising the collected userprofile information and the first set of costs, and storing informationincluded in the message in a reference database connected to the remoteserver.
 7. The method of claim 6, further comprising, before the step ofsending, a step of marking as ‘known’ in the message cost informationwhich has been collected, and marking as ‘unknown’ cost informationwhich has been read from the local database.
 8. The method of claim 6,wherein the step of sending is performed upon a request entered by anoperator of a computer calculating a user cost estimate.
 9. The methodof claim 6, wherein the message further comprises a result of the costestimate calculating step and the second set of costs.
 10. The method ofclaim 6, wherein the message further comprises administrativeinformation including an identification of cost estimate calculationstep execution and an identification of a level of the local databaseread for the cost estimate calculation step.
 11. The method of claim 6,further including the step of replicating the local database from thereference database.
 12. A method operating on a remote servercommunicating with a computer operating the method according to claim 6,said method comprising the steps of: receiving, from the computer, themessage comprising the collected user profile information and the firstset of costs; updating, according to information included in themessage, the reference database, to create a new level of databasecontent; and downloading the new level of database content to thecomputer.
 13. The method of claim 12, wherein the step of downloading isperformed upon a request entered by an operator of the remote server.14. The method of claim 12, further comprising, before the step ofupdating, a step of removing user identity information from thecollected user profile information included in the message.
 15. Themethod of claim 12, further comprising, before the step of updating, thesteps of: reading, from the message, the collected user profileinformation, the second set of costs, and a result of the cost estimatecalculating step; and, automatically checking coherence between theresult of the cost estimate calculating step and the collected userprofile information according to pre-established business rules.
 16. Themethod of claim 12, further comprising, after the step of downloading,the steps of: reading, from the message, administrative informationincluding an identification of a cost estimate calculation stepexecution and the identification of the database level read for the costestimate calculation step execution; and, archiving the content of themessage in a database connected to the remote server.
 17. A computerprogram product comprising programming code instructions for executingthe steps of the method according to claim 12 when said program isexecuted on a computer.